home *** CD-ROM | disk | FTP | other *** search
/ IRIX Base Documentation 1998 November / IRIX 6.5.2 Base Documentation November 1998.img / usr / share / catman / p_man / cat3 / complib / fir1d.z / fir1d
Text File  |  1998-10-30  |  15KB  |  199 lines

  1.  
  2.  
  3.  
  4. ____FFFFIIIIRRRR1111DDDD((((3333FFFF))))                                                          ____FFFFIIIIRRRR1111DDDD((((3333FFFF))))
  5.  
  6.  
  7.  
  8. NNNNAAAAMMMMEEEE
  9.      SFIR1D, DFIR1D, CFIR1D, ZFIR1D - 1D Convolution in the time domain.
  10.  
  11. FFFFOOOORRRRTTTTRRRRAAAANNNN SSSSPPPPEEEECCCCIIIIFFFFIIIICCCCAAAATTTTIIIIOOOONNNN
  12.      ssssuuuubbbbrrrroooouuuuttttiiiinnnneeee SSSSFFFFIIIIRRRR1111DDDD(((( iiiinnnn____ppppuuuutttt,,,, iiiinnnncccciiiinnnnpppp,,,, iiii0000____iiiinnnnpppp,,,, nnnn____iiiinnnnpppp,,,,
  13.                         ffffiiiirrrrffffiiiillll,,,, iiiinnnnccccffffiiiirrrr,,,, iiii0000____ffffiiiirrrr,,,, nnnn____ffffiiiirrrr,,,,
  14.                         oooouuuuttttppppuuuutttt,,,, iiiinnnnccccoooouuuutttt,,,, iiii0000____oooouuuutttt,,,, nnnn____oooouuuutttt,,,,
  15.                         aaaallllpppphhhhaaaa,,,, bbbbeeeettttaaaa ))))
  16.      iiiinnnntttteeeeggggeeeerrrr            iiiinnnncccciiiinnnnpppp,,,, iiii0000____iiiinnnnpppp,,,, nnnn____iiiinnnnpppp,,,,
  17.                         iiiinnnnccccffffiiiirrrr,,,, iiii0000____ffffiiiirrrr,,,, nnnn____ffffiiiirrrr
  18.                         iiiinnnnccccoooouuuutttt,,,, iiii0000____oooouuuutttt,,,, nnnn____oooouuuutttt
  19.      rrrreeeeaaaallll               iiiinnnn____ppppuuuutttt((((****)))),,,, ffffiiiirrrrffffiiiillll((((****)))),,,, oooouuuuttttppppuuuutttt((((****)))),,,, aaaallllpppphhhhaaaa,,,, bbbbeeeettttaaaa
  20.  
  21.      ssssuuuubbbbrrrroooouuuuttttiiiinnnneeee DDDDFFFFIIIIRRRR1111DDDD(((( iiiinnnn____ppppuuuutttt,,,, iiiinnnncccciiiinnnnpppp,,,, iiii0000____iiiinnnnpppp,,,, nnnn____iiiinnnnpppp,,,,
  22.                         ffffiiiirrrrffffiiiillll,,,, iiiinnnnccccffffiiiirrrr,,,, iiii0000____ffffiiiirrrr,,,, nnnn____ffffiiiirrrr,,,,
  23.                         oooouuuuttttppppuuuutttt,,,, iiiinnnnccccoooouuuutttt,,,, iiii0000____oooouuuutttt,,,, nnnn____oooouuuutttt,,,,
  24.                         aaaallllpppphhhhaaaa,,,, bbbbeeeettttaaaa ))))
  25.      iiiinnnntttteeeeggggeeeerrrr            iiiinnnncccciiiinnnnpppp,,,, iiii0000____iiiinnnnpppp,,,, nnnn____iiiinnnnpppp,,,,
  26.                         iiiinnnnccccffffiiiirrrr,,,, iiii0000____ffffiiiirrrr,,,, nnnn____ffffiiiirrrr
  27.                         iiiinnnnccccoooouuuutttt,,,, iiii0000____oooouuuutttt,,,, nnnn____oooouuuutttt
  28.      ddddoooouuuubbbblllleeee pppprrrreeeecccciiiissssiiiioooonnnn   iiiinnnn____ppppuuuutttt((((****)))),,,, ffffiiiirrrrffffiiiillll((((****)))),,,, oooouuuuttttppppuuuutttt((((****)))),,,, aaaallllpppphhhhaaaa,,,, bbbbeeeettttaaaa
  29.  
  30.      ssssuuuubbbbrrrroooouuuuttttiiiinnnneeee CCCCFFFFIIIIRRRR1111DDDD(((( iiiinnnn____ppppuuuutttt,,,, iiiinnnncccciiiinnnnpppp,,,, iiii0000____iiiinnnnpppp,,,, nnnn____iiiinnnnpppp,,,,
  31.                         ffffiiiirrrrffffiiiillll,,,, iiiinnnnccccffffiiiirrrr,,,, iiii0000____ffffiiiirrrr,,,, nnnn____ffffiiiirrrr,,,,
  32.                         oooouuuuttttppppuuuutttt,,,, iiiinnnnccccoooouuuutttt,,,, iiii0000____oooouuuutttt,,,, nnnn____oooouuuutttt,,,,
  33.                         aaaallllpppphhhhaaaa,,,, bbbbeeeettttaaaa ))))
  34.      iiiinnnntttteeeeggggeeeerrrr            iiiinnnncccciiiinnnnpppp,,,, iiii0000____iiiinnnnpppp,,,, nnnn____iiiinnnnpppp,,,,
  35.                         iiiinnnnccccffffiiiirrrr,,,, iiii0000____ffffiiiirrrr,,,, nnnn____ffffiiiirrrr
  36.                         iiiinnnnccccoooouuuutttt,,,, iiii0000____oooouuuutttt,,,, nnnn____oooouuuutttt
  37.      ccccoooommmmpppplllleeeexxxx            iiiinnnn____ppppuuuutttt((((****)))),,,, ffffiiiirrrrffffiiiillll((((****)))),,,, oooouuuuttttppppuuuutttt((((****)))),,,, aaaallllpppphhhhaaaa,,,, bbbbeeeettttaaaa
  38.  
  39.      ssssuuuubbbbrrrroooouuuuttttiiiinnnneeee ZZZZFFFFIIIIRRRR1111DDDD(((( iiiinnnn____ppppuuuutttt,,,, iiiinnnncccciiiinnnnpppp,,,, iiii0000____iiiinnnnpppp,,,, nnnn____iiiinnnnpppp,,,,
  40.                         ffffiiiirrrrffffiiiillll,,,, iiiinnnnccccffffiiiirrrr,,,, iiii0000____ffffiiiirrrr,,,, nnnn____ffffiiiirrrr,,,,
  41.                         oooouuuuttttppppuuuutttt,,,, iiiinnnnccccoooouuuutttt,,,, iiii0000____oooouuuutttt,,,, nnnn____oooouuuutttt,,,,
  42.                         aaaallllpppphhhhaaaa,,,, bbbbeeeettttaaaa ))))
  43.      iiiinnnntttteeeeggggeeeerrrr            iiiinnnncccciiiinnnnpppp,,,, iiii0000____iiiinnnnpppp,,,, nnnn____iiiinnnnpppp,,,,
  44.                         iiiinnnnccccffffiiiirrrr,,,, iiii0000____ffffiiiirrrr,,,, nnnn____ffffiiiirrrr
  45.                         iiiinnnnccccoooouuuutttt,,,, iiii0000____oooouuuutttt,,,, nnnn____oooouuuutttt
  46.      ddddoooouuuubbbblllleeee ccccoooommmmpppplllleeeexxxx     iiiinnnn____ppppuuuutttt((((****)))),,,, ffffiiiirrrrffffiiiillll((((****)))),,,, oooouuuuttttppppuuuutttt((((****)))),,,, aaaallllpppphhhhaaaa,,,, bbbbeeeettttaaaa
  47.  
  48.  
  49. CCCC SSSSPPPPEEEECCCCIIIIFFFFIIIICCCCAAAATTTTIIIIOOOONNNN
  50.      ####iiiinnnncccclllluuuuddddeeee <<<<ccccoooonnnnvvvv....hhhh>>>>
  51.  
  52.      vvvvooooiiiidddd ssssffffiiiirrrr1111dddd((((    ffffllllooooaaaatttt ****ffff,,,, iiiinnnntttt iiiinnnnccccffff,,,, iiiinnnntttt iiiiffff0000,,,, iiiinnnntttt nnnnffff,,,,
  53.                      ffffllllooooaaaatttt ****gggg,,,, iiiinnnntttt iiiinnnnccccgggg,,,, iiiinnnntttt iiiigggg0000,,,, iiiinnnntttt nnnngggg,,,,
  54.                      ffffllllooooaaaatttt ****hhhh,,,, iiiinnnntttt iiiinnnncccchhhh,,,, iiiinnnntttt iiiihhhh0000,,,, iiiinnnntttt nnnnhhhh,,,,
  55.                      ffffllllooooaaaatttt aaaallllpppphhhhaaaa,,,, ffffllllooooaaaatttt bbbbeeeettttaaaa))))
  56.  
  57.      vvvvooooiiiidddd ddddffffiiiirrrr1111dddd((((    ddddoooouuuubbbblllleeee ****ffff,,,, iiiinnnntttt iiiinnnnccccffff,,,, iiiinnnntttt iiiiffff0000,,,, iiiinnnntttt nnnnffff,,,,
  58.                      ddddoooouuuubbbblllleeee ****gggg,,,, iiiinnnntttt iiiinnnnccccgggg,,,, iiiinnnntttt iiiigggg0000,,,, iiiinnnntttt nnnngggg,,,,
  59.                      ddddoooouuuubbbblllleeee ****hhhh,,,, iiiinnnntttt iiiinnnncccchhhh,,,, iiiinnnntttt iiiihhhh0000,,,, iiiinnnntttt nnnnhhhh,,,,
  60.  
  61.  
  62.  
  63.                                                                         PPPPaaaaggggeeee 1111
  64.  
  65.  
  66.  
  67.  
  68.  
  69.  
  70. ____FFFFIIIIRRRR1111DDDD((((3333FFFF))))                                                          ____FFFFIIIIRRRR1111DDDD((((3333FFFF))))
  71.  
  72.  
  73.  
  74.                      ddddoooouuuubbbblllleeee aaaallllpppphhhhaaaa,,,, ddddoooouuuubbbblllleeee bbbbeeeettttaaaa))))
  75.  
  76.      vvvvooooiiiidddd ccccffffiiiirrrr1111dddd((((    ccccoooommmmpppplllleeeexxxx ****ffff,,,, iiiinnnntttt iiiinnnnccccffff,,,, iiiinnnntttt iiiiffff0000,,,, iiiinnnntttt nnnnffff,,,,
  77.                      ccccoooommmmpppplllleeeexxxx ****gggg,,,, iiiinnnntttt iiiinnnnccccgggg,,,, iiiinnnntttt iiiigggg0000,,,, iiiinnnntttt nnnngggg,,,,
  78.                      ccccoooommmmpppplllleeeexxxx ****hhhh,,,, iiiinnnntttt iiiinnnncccchhhh,,,, iiiinnnntttt iiiihhhh0000,,,, iiiinnnntttt nnnnhhhh,,,,
  79.                      ccccoooommmmpppplllleeeexxxx ****aaaallllpppphhhhaaaa,,,, ccccoooommmmpppplllleeeexxxx ****bbbbeeeettttaaaa))))
  80.  
  81.      vvvvooooiiiidddd zzzzffffiiiirrrr1111dddd((((    zzzzoooommmmpppplllleeeexxxx ****ffff,,,, iiiinnnntttt iiiinnnnccccffff,,,, iiiinnnntttt iiiiffff0000,,,, iiiinnnntttt nnnnffff,,,,
  82.                      zzzzoooommmmpppplllleeeexxxx ****gggg,,,, iiiinnnntttt iiiinnnnccccgggg,,,, iiiinnnntttt iiiigggg0000,,,, iiiinnnntttt nnnngggg,,,,
  83.                      zzzzoooommmmpppplllleeeexxxx ****hhhh,,,, iiiinnnntttt iiiinnnncccchhhh,,,, iiiinnnntttt iiiihhhh0000,,,, iiiinnnntttt nnnnhhhh,,,,
  84.                      zzzzoooommmmpppplllleeeexxxx ****aaaallllpppphhhhaaaa,,,, zzzzoooommmmpppplllleeeexxxx ****bbbbeeeettttaaaa))))
  85.  
  86.  
  87.  
  88. DDDDEEEESSSSCCCCRRRRIIIIPPPPTTTTIIIIOOOONNNN
  89.      SFIR1D and DFIR1D compute a 1D convolution in the time domain :
  90.  
  91.             O(j) = Sum[ I(i) * F(j-i) ]
  92.  
  93.  
  94. UUUUSSSSAAAAGGGGEEEE
  95.      These modules compute the result of the convolution in the "output" range
  96.      padding with zeroes when needed. In theory, an input sequence of "n_inp"
  97.      samples starting at time "i0_inp", filtered by a sequence of "n_fir"
  98.      samples starting at time "i0_fir", will result in a new signal of (n_inp
  99.      + n_fir - 1) non zero samples starting at time (i0_inp + i0_fir). We just
  100.      compute here the values that fall in that range and zero the rest.  This
  101.      may be interesting, for example when filtering a sequence of N samples,
  102.      with a symmetric filter of 2m+1 samples. If one wants only to compute the
  103.      central N resulting samples, the following call can be used:
  104.          call _fir1d( f, 0, 1, N,  g, -m, 1, 2*m+1,  h, 0, 1, N)
  105.  
  106.  
  107.  
  108. PPPPAAAARRRRAAAAMMMMEEEETTTTEEEERRRRSSSS
  109.      iiiinnnn____ppppuuuutttt  Pointer to FIRST sample of sequence "in_put"
  110.  
  111.  
  112.      iiiinnnncccciiiinnnnpppp  Increment between two successive values of "in_put"
  113.  
  114.  
  115.      iiii0000____iiiinnnnpppp  Index of the first element of "in_put"
  116.  
  117.  
  118.      nnnn____iiiinnnnpppp   Number of samples of "in_put"
  119.  
  120.  
  121.      ffffiiiirrrrffffiiiillll  Pointer to FIRST sample of sequence "firfil"
  122.  
  123.  
  124.  
  125.  
  126.  
  127.  
  128.  
  129.                                                                         PPPPaaaaggggeeee 2222
  130.  
  131.  
  132.  
  133.  
  134.  
  135.  
  136. ____FFFFIIIIRRRR1111DDDD((((3333FFFF))))                                                          ____FFFFIIIIRRRR1111DDDD((((3333FFFF))))
  137.  
  138.  
  139.  
  140.      iiiinnnnccccffffiiiirrrr  Increment between two successive values of "firfil"
  141.  
  142.  
  143.      iiii0000____ffffiiiirrrr  Index of the first element of "firfil"
  144.  
  145.  
  146.      iiii0000____ffffiiiirrrr  Number of samples of "firfil"
  147.  
  148.  
  149.      oooouuuuttttppppuuuutttt  Pointer to FIRST sample of sequence "output"
  150.  
  151.  
  152.      iiiinnnnccccoooouuuutttt  Increment between two successive values of "output"
  153.  
  154.  
  155.      iiii0000____oooouuuutttt  Index of the first element of "output"
  156.  
  157.  
  158.      nnnn____oooouuuutttt   Number of samples of "output"
  159.  
  160.  
  161.      aaaallllpppphhhhaaaa   Scaling factor for the convolution
  162.  
  163.  
  164.      bbbbeeeettttaaaa    Scaling factor for the Output on Entry
  165.  
  166.  
  167. IIIIMMMMPPPPOOOORRRRTTTTAAAANNNNTTTT NNNNOOOOTTTTEEEE::::
  168.            The array pointers must all point to the first element of the
  169.            array "i0_inp", "i0_fir" and "i0_out". If "in_put" for example
  170.            is defined as
  171.                 dimension in_put(-25:45)
  172.            Then "dfir1d" must be called with the following parameters
  173.                 call dfir1d( in_put(-25),1,-25,45, ... )
  174.  
  175.  
  176. AAAAUUUUTTTTHHHHOOOORRRRSSSS
  177.           Jean-Pierre Panziera, 1/12/93.
  178.  
  179.  
  180.  
  181.  
  182.  
  183.  
  184.  
  185.  
  186.  
  187.  
  188.  
  189.  
  190.  
  191.  
  192.  
  193.  
  194.  
  195.                                                                         PPPPaaaaggggeeee 3333
  196.  
  197.  
  198.  
  199.